﻿YUI.add('evaluacion-view', function (Y) {
    'use strict';
    Y.Prvaluacion = Y.Base.create('Evaluacion', Y.View, [], {
        templateIsCharged: false,
        loadTemplate: function () {
            if (this.template == '') {
                var that = this,
                validator = null,
                request = Y.io('/ExcellentProject/scripts/views/evaluaciones/evaluaciones/templates/evaluacion.html', {
                    on: {
                        complete: function (id, response) {
                            that.templateIsCharged = true;
                            that.template = response.responseText;
                            that.render();
                        }
                    },
                    failure: function (id, response) {
                        alert(response)
                    }
                })
            }
        },
        events: {
            '.enviarPregunta': {
                click: 'enviarPregunta'
            }
        },
        render: function () {
            this.loadTemplate();
            if (this.templateIsCharged) {
                var contentTemplate = Y.Handlebars.compile(this.template);
                var calendarizacion = this.get('calendarizacion');

                //Y.one('aside').hide();
                console.log(JSON.stringify(this.get('model')))
                console.log(JSON.stringify(calendarizacion))
                this.get('container').setHTML(contentTemplate(Y.merge(this.get('model'), calendarizacion)));
                var clock;
                $(document).ready(function () {
                    clock = $('.clock').FlipClock(calendarizacion.TiempoExamen * 60, {
                        clockFace: 'MinuteCounter',
                        countdown: true,
                        callbacks: {
                            stop: function () {
                                $('.message').html('The clock has stopped!');
                            }
                        }
                    });
                });
            }
        },
        enviarPregunta: function (ev) {
            var opcionesDeseleccionSimple = Y.all('input[name^="opcionSimple"]');
            var listaRespuestas = [];
            if (opcionesDeseleccionSimple.size() > 0) {
                var listaOpciones = Y.all('input[name^="opcionSimple"]').get('name').getUnique();
                for (var i = 0; i < listaOpciones.length; i++) {
                    var pregunta = Y.one('[name=' + listaOpciones[i] + ']:checked');
                    if (pregunta == null) {
                        alert('No ha contestado todas las preguntas');
                        return;
                    }
                    else
                    {
                        listaRespuestas.push({
                            "IdPregunta": pregunta.getAttribute('idpregunta'),
                            "IdRespuesta": pregunta.get('value')
                        })
                    }
                }
            }
            var opcionesDeseleccionMultiple = Y.all('input[name^="opcionMultiple"]');

            var listaOpcionesMultiples = Y.all('input[name^="opcionMultiple"]').get('name').getUnique();
            for (var i = 0; i < listaOpcionesMultiples.length; i++) {
                var pregunta = Y.one('[name=' + listaOpcionesMultiples[i] + ']:checked');
                if (pregunta != null) {
                    debugger
                    if (pregunta.get('checked')) {
                        listaRespuestas.push({
                            "IdPregunta": pregunta.getAttribute('idpregunta'),
                            "IdRespuesta": pregunta.get('value')
                        })
                    }
                }
            }

            var model = {
                IdExamen: this.get('idExamen'),
                Respuestas: listaRespuestas
            };


            Y.io('http://localhost/ExcellentProject.Examenes/api/examenes/calificar', {
                method: 'POST',
                data: JSON.stringify(model),
                headers: {
                    'Content-Type': 'application/json'
                },
                on: {
                    success: function (id, response) {
                        var calificacion = JSON.parse(response.responseText);
                        Y.one('#siguiente').set('href', '/mostrarresultadoevaluacion/' + calificacion.Calificacion)
                        Y.one('#siguiente').simulate('click');
                    },
                    error: function (id, response) {
                        bootbox.alert('Problemas al guardar el examen');
                    }
                }
            });

        }

    })

}, '0.0.0.1', { requires: ['view', 'handlebars', 'node', 'event', 'node-event-simulate', 'examen-model', 'handlebars-customif-helper'] })